lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
minus(x, y) → help(lt(y, x), x, y)
help(true, x, y) → s(minus(x, s(y)))
help(false, x, y) → 0
↳ QTRS
↳ Overlay + Local Confluence
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
minus(x, y) → help(lt(y, x), x, y)
help(true, x, y) → s(minus(x, s(y)))
help(false, x, y) → 0
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
minus(x, y) → help(lt(y, x), x, y)
help(true, x, y) → s(minus(x, s(y)))
help(false, x, y) → 0
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
MINUS(x, y) → LT(y, x)
LT(s(x), s(y)) → LT(x, y)
MINUS(x, y) → HELP(lt(y, x), x, y)
HELP(true, x, y) → MINUS(x, s(y))
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
minus(x, y) → help(lt(y, x), x, y)
help(true, x, y) → s(minus(x, s(y)))
help(false, x, y) → 0
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
MINUS(x, y) → LT(y, x)
LT(s(x), s(y)) → LT(x, y)
MINUS(x, y) → HELP(lt(y, x), x, y)
HELP(true, x, y) → MINUS(x, s(y))
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
minus(x, y) → help(lt(y, x), x, y)
help(true, x, y) → s(minus(x, s(y)))
help(false, x, y) → 0
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
LT(s(x), s(y)) → LT(x, y)
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
minus(x, y) → help(lt(y, x), x, y)
help(true, x, y) → s(minus(x, s(y)))
help(false, x, y) → 0
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
LT(s(x), s(y)) → LT(x, y)
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
LT(s(x), s(y)) → LT(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
MINUS(x, y) → HELP(lt(y, x), x, y)
HELP(true, x, y) → MINUS(x, s(y))
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
minus(x, y) → help(lt(y, x), x, y)
help(true, x, y) → s(minus(x, s(y)))
help(false, x, y) → 0
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
MINUS(x, y) → HELP(lt(y, x), x, y)
HELP(true, x, y) → MINUS(x, s(y))
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
minus(x0, x1)
help(true, x0, x1)
help(false, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
MINUS(x, y) → HELP(lt(y, x), x, y)
HELP(true, x, y) → MINUS(x, s(y))
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))
(1) (MINUS(x2, s(x3))=MINUS(x4, x5) ⇒ MINUS(x4, x5)≥HELP(lt(x5, x4), x4, x5))
(2) (MINUS(x2, s(x3))≥HELP(lt(s(x3), x2), x2, s(x3)))
(3) (HELP(lt(x7, x6), x6, x7)=HELP(true, x8, x9) ⇒ HELP(true, x8, x9)≥MINUS(x8, s(x9)))
(4) (lt(x7, x6)=true ⇒ HELP(true, x6, x7)≥MINUS(x6, s(x7)))
(5) (true=true ⇒ HELP(true, s(x12), 0)≥MINUS(s(x12), s(0)))
(6) (lt(x14, x15)=true∧(lt(x14, x15)=true ⇒ HELP(true, x15, x14)≥MINUS(x15, s(x14))) ⇒ HELP(true, s(x15), s(x14))≥MINUS(s(x15), s(s(x14))))
(7) (HELP(true, s(x12), 0)≥MINUS(s(x12), s(0)))
(8) (HELP(true, x15, x14)≥MINUS(x15, s(x14)) ⇒ HELP(true, s(x15), s(x14))≥MINUS(s(x15), s(s(x14))))
POL(0) = 0
POL(HELP(x1, x2, x3)) = -1 - x1 + x2 - x3
POL(MINUS(x1, x2)) = -1 + x1 - x2
POL(c) = -2
POL(false) = 0
POL(lt(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
HELP(true, x, y) → MINUS(x, s(y))
The following rules are usable:
HELP(true, x, y) → MINUS(x, s(y))
false → lt(x, 0)
true → lt(0, s(x))
lt(x, y) → lt(s(x), s(y))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ QDP
↳ DependencyGraphProof
MINUS(x, y) → HELP(lt(y, x), x, y)
lt(0, s(x)) → true
lt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)
lt(0, s(x0))
lt(x0, 0)
lt(s(x0), s(x1))